package com.zhiyou100.mapper;

import com.zhiyou100.entity.Student;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;

/**
 * 字符串替换 ${column} 的使用
 *
 * @author yang
 * @className Student03Mapper
 * @packageName com.zhiyou100.mapper
 * @Description TODO 字符串替换 ${column} 的使用
 * @date 2020-08-15 16:20
 */
public interface Student03Mapper {
    /**
     * 根据指定的字段和值获取一个学生
     * <p>
     * ${column} 会被直接替换
     * #{value} 会使用 ？ 预处理
     * 这种方式也同样适用于替换表名的情况。
     * <p>
     * 提示 用这种方式接受用户的输入，并用作语句参数是不安全的，会导致潜在的 SQL 注入攻击。
     * 因此，要么不允许用户输入这些字段，要么自行转义并检验这些参数。
     *
     * @param column 字段名 值
     * @param value  值
     * @return com.zhiyou100.entity.Student
     * @Description TODO
     * @name findByColumn
     * @date 8/15/20 16:24
     * @author yang
     */
    @Select("select * from student where ${column} = #{value}")
    Student findByColumn(@Param("column") String column, @Param("value") String value);
}
